from flask import Flask, request, jsonify

app = Flask(__name__)

# 功能字典
FUNCTIONS = {
    "translate_zh_to_en": "中文翻译到英文",
    "translate_en_to_zh": "英文翻译到中文",
    "summarize": "文本总结"
}

# 模拟调用大模型接口的函数
def call_large_model(input_text, task_type):
    """
    描述: 模拟调用大模型 API【伪代码】
    
    参数:
        input_text: 输入文本
        task_type: 任务类型 (translate_zh_to_en, translate_en_to_zh, summarize)

    返回: 大模型的输出结果
    """
    if task_type == 'translate_zh_to_en':
        result = "Fake Code to demonstrate function translation from Chinese to English, here is input text: " + input_text # 伪代码
    elif task_type == 'translate_en_to_zh':
        result = "伪代码以演示翻译英文到中文功能，这里是输入的数据: " + input_text # 伪代码
    elif task_type == 'summarize':
        result = "伪代码以演示总结功能，这里是输入的数据: " + input_text # 伪代码
    else:
        pass
    
    return result

# 1.1 获取所有功能列表接口
@app.route('/functions', methods=['GET'])
def get_functions():
    return jsonify({"functions": FUNCTIONS})

# 1.2 调用具体功能接口
@app.route('/call_function', methods=['POST'])
def call_function():
    data = request.get_json()
    function_name = data.get('function')
    input_text = data.get('text')
    
    if not function_name or not input_text:
        return jsonify({"错误": "参数未完全提供，请检查参数"}), 400
    
    if function_name not in FUNCTIONS:
        return jsonify({"错误": "无效的功能名，请调用'/functions'参数查看具体的接口路径"}), 400
    
    # 调用大模型伪代码
    result = call_large_model(input_text, task_type=function_name)
    
    return jsonify({"result": result})

# 启动应用
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=7777)
